#ifndef CONSTANTS_H
#define CONSTANTS_H

#include <cmath>
#include <iostream>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <complex>
#define complex std::complex<double>

#define PI 3.14159265358979323846
using std::ofstream;
using std::string;
using std::cout;
using std::endl;

namespace Constants {

  const double c = 137.036040654012043;// 光速 c = 137 a.u.(1m/s = 2.1876906e6 a.u.)
  const double cc = 300.; // nm/fs light speed
  const double epsilon_0 = 1.0/(4 * PI); //真空介电常数 a.u.
  const double mu_0 = (4 * PI) / (c * c); //真空磁导率 a.u.
  const double e = 1.0;         //电子电荷 a.u.
  const double m_e = 1.0;       //电子质量 a.u.
  const double a_f = 1/c;       //精细结构常数 
  // const double kerrAU = 6.43744051931778e15;        // 常温常压下空气非线性克尔系数(3.2e-19 cm^2/W) a.u.

  const double um_nm = 1000.;      //1um = 1000 nm

  const double au_nm = 0.052917721067; //1au = 0.052917721067 nm  (au转nm)
  const double au_fs = 0.02418884326;  //1au = 0.02418884326 fs   (au转fs)

  const complex Ii(0., 1.);

  const double omega1THz = 0.0001519829846008682; //1THz对应的原子单位的角频率

}

#endif // CONSTANTS_H